﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Web;
using System.Web.UI;

namespace Uricao.Presentadores
{
    public class MensajesAlUsuario
    {
        #region Atributos de la clase MensajesAlUsuario
        private Page _ventana;
        private string _mensajeExistoso = "Solicitud Completa.";
        private string _mensajeCamposObligatorios = "Todos los campos indicados con un * son obligatorios.";
        private string _mensajeCaracteresInvalidosLetras = "Solo se permiten caracteres alfabeticos.";
        private string _mensajeCaracteresInvalidosAlfaNumericos = "Solo se permiten caracateres alfanumericos.";
        private string _mensajeConsultaVacia = "No se encuentran ningun dato registrado.";
        private string _mensajeDominioEnExistencia = "Disculpe ya se encuentra: ";
        private string _mensajeDeFechasMayoresALaDelSistema = "Las fechas deben ser menores a la fecha del sistema.";
        private string _mensajeDeHorasMenoresALaDelSistema = "La hora debe ser mayor a la hora del sistema.";
        private string _mensajeDeRangoDeFechasInvalido = "La fecha inicio indicada debe ser menor a la fecha fin indicada.";
        private string _mensajeException = "Disculpe en estos momentos no se puede realizar la orepacion.";
        #endregion

        #region Metodos de la clase MensajesAlUsuario
        ///<sumary>
        ///Metodo que se encarga de suministrar el objeto de la clase MensajesAlUsuario   
        ///Retorno: objeto de la clase MensajesAlUsuario
        ///Page ventana: atributo que indica en que ventana se mostrara el mensaje
        ///</sumary>
        public static MensajesAlUsuario ObtenerMensajesAlUsuario(Page ventana)
        {
            return new MensajesAlUsuario(ventana);
        }

        ///<sumary>
        ///Constructor de la clase MensajesAlUsuario  
        ///</sumary>
        private MensajesAlUsuario(Page ventana)
        {
            _ventana = ventana;
        }

        ///<sumary>
        ///Metodo que se encarga de mostrar el mensaje en la ventana indicada 
        ///String mensaje: mensaje que se mostrara al usuario
        ///</sumary>
        private void mensajesAlUsuario(string mensaje)
        {
            string alert = "alert('" + mensaje + "');";
            string tipo = "script";
            ScriptManager.RegisterStartupScript(_ventana, _ventana.GetType(), tipo, alert, true);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeExitoso
        ///</sumary>
        public void MensajeExitoso()
        {
            mensajesAlUsuario(_mensajeExistoso);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeCamposObligatorios
        ///</sumary>
        public void MensajeCamposObligatorios()
        {
            mensajesAlUsuario(_mensajeCamposObligatorios);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeCaracteresInvalidosLetras
        ///</sumary>
        public void MensajeCaracteresInvalidosLetras()
        {
            mensajesAlUsuario(_mensajeCaracteresInvalidosLetras);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeCaracteresInvalidosAlfaNumericos
        ///</sumary>
        public void MensajeCaracteresInvalidosAlfanumericos()
        {
            mensajesAlUsuario(_mensajeCaracteresInvalidosAlfaNumericos);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeConsultaVacia
        ///</sumary>
        public void MensajeConsultaVacia()
        {
            mensajesAlUsuario(_mensajeConsultaVacia);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeDominioEnExistencia
        ///string dominio: atributo que indica que dominio se esta manejando, ejemplos: cargos,plato,empleado,etc;
        ///</sumary>
        public void MensajeDominioEnExistencia(string dominio)
        {
            mensajesAlUsuario(_mensajeDominioEnExistencia + dominio);
        }

        /// <summary>
        /// Metodo que llama a mensajesAlUsuario pasando el mensaje de  _mensajeDeFechasMayoresALaDelSistema
        /// </summary>
        public void MensajeDeFechasMayoresALaDelSistema()
        {
            mensajesAlUsuario(_mensajeDeFechasMayoresALaDelSistema);
        }

        /// <summary>
        /// Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeDeHorasMenoresALaDelSistema
        /// </summary>
        public void MensajeDeHorasMenoresALaDelSistema()
        {
            mensajesAlUsuario(_mensajeDeHorasMenoresALaDelSistema);
        }

        /// <summary>
        /// Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeDeRangoDeFechasInvalido
        /// </summary>
        public void MensajeDeRangoDeFechasInvalido()
        {
            mensajesAlUsuario(_mensajeDeRangoDeFechasInvalido);
        }

        ///<sumary>
        ///Metodo que llama a mensajesAlUsuario pasando el mensaje de _mensajeException
        ///</sumary>
        public void MensajeException()
        {
            mensajesAlUsuario(_mensajeException);
        }
        #endregion
    }
}
